<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <script>
    /*
      字符串操作案例
        + 统计字符串中每一个字符出现的次数
    */

    // 原始字符串
    var str = 'dfsuyhgsadfkjhsadj撒旦教房管局桑的挂号费收到货交付给几哈森岛帆高@#$%^&*('

    /*
      + 字符串是按照索引排列, 可以使用循环拿到每一个字符
      + 对象内可以使用任意内容当做 key
      + 对象内访问成员的时候, 可以使用 key 来准确的访问不需要遍历
    */

    // 1. 循环遍历拿到每一个字符
    var obj = {}
    for (var i = 0; i < str.length; i++) {
      // 在循环内, str[i] 就是字符串中的每一个字符
      // console.log(str[i])

      // 把每一个字符当做 key 放在对象内
      // 如果对象内有这个 key, 那么值 ++
      // 如果对象内没有这个 key, 那么值赋值为 1
      obj[ str[i] ] ? obj[ str[i] ]++ : obj[ str[i] ] = 1
    }

    console.log(obj)



    // 结果
    // 字符串 'a 2, b 2, c 2', 不方便
    // 数组 [ 'a', 2, 'b', 2, 'c', 2 ]  不方便
    // 对象 { a: 2, b: 2, c: 2 }


  </script>
</body>
</html>
